home *** CD-ROM | disk | FTP | other *** search
/ Champak 45 / Vol 45.iso / games / bubblegu.swf / scripts / DefineSprite_432_char / frame_1 / DoAction.as
Encoding:
Text File  |  2007-04-20  |  14.0 KB  |  531 lines

  1. function render()
  2. {
  3.    if(xpos < 50)
  4.    {
  5.       xpos = 55;
  6.       trace("RETURN TO SENDER!");
  7.    }
  8.    if(xpos > 550)
  9.    {
  10.       xpos = 550;
  11.    }
  12.    _Y = mRound(ypos);
  13.    _X = mRound(xpos);
  14. }
  15. function setY(traction)
  16. {
  17.    onGround = true;
  18.    onTraction = true;
  19.    var _loc1_ = downY3 * TILE_H - TILE_H;
  20.    ypos = _loc1_ + mAbs(gravity);
  21.    yspeed = 0;
  22. }
  23. function updateEdges()
  24. {
  25.    downY = mFloor((ypos + 31) / TILE_H);
  26.    upY = mFloor((ypos - 31) / TILE_H);
  27.    leftX = mFloor((xpos - 15) / TILE_W);
  28.    rightX = mFloor((xpos + 15) / TILE_W);
  29.    downY2 = mFloor((ypos + 26) / TILE_H);
  30.    upY2 = mFloor((ypos - 26) / TILE_H);
  31.    downY3 = mFloor((ypos + 32) / TILE_H);
  32.    centerY = mFloor(ypos / TILE_H);
  33.    centerX = mFloor(xpos / TILE_W);
  34. }
  35. if(home.starting)
  36. {
  37.    bubble = 0;
  38. }
  39. var speed = 6.5;
  40. var jumpspeed = 12;
  41. var jPad = 35;
  42. var health;
  43. var mFloor = Math.floor;
  44. var mAbs = Math.abs;
  45. var mRound = Math.round;
  46. var KDN = Key.isDown;
  47. var kL = 37;
  48. var kR = 39;
  49. var kU = 38;
  50. var kD = 40;
  51. var kS = 32;
  52. var cMap = home.cMap;
  53. var TILE_W = home.TILE_W;
  54. var TILE_H = home.TILE_H;
  55. var baseGrav = gravity = 0.9;
  56. var groundFriction = 0.8;
  57. var airFriction = 0.9;
  58. this.onEnterFrame = function()
  59. {
  60.    var _loc2_ = this;
  61.    if(home.charAlive)
  62.    {
  63.       if(xspeed < 0.5 && xspeed > 0 || xspeed > -0.5 && xspeed < 0)
  64.       {
  65.          xspeed = 0;
  66.       }
  67.       if(gummed && onGround && !home.respawn)
  68.       {
  69.          trace("DE-GUM YOURSELF");
  70.          gummed = false;
  71.          charArt.splat_mc._visible = false;
  72.          charArt.gotoAndStop("degum");
  73.       }
  74.       if(KDN(kS))
  75.       {
  76.          if(!gummed)
  77.          {
  78.             if(!home.respawn)
  79.             {
  80.                yspeed = - speed + 2;
  81.                if(bubble < 100)
  82.                {
  83.                   bubble += 5;
  84.                   if(bubble_snd == undefined || bubble_snd.position == bubble_snd.duration)
  85.                   {
  86.                      bubble_snd = new Sound();
  87.                      bubble_snd.atcPlay("bubbleUp2");
  88.                   }
  89.                }
  90.                flying = true;
  91.                traction = 0;
  92.                gravity = -1 * (bubble / 100);
  93.             }
  94.          }
  95.       }
  96.       else
  97.       {
  98.          if(bubble > 0)
  99.          {
  100.             bubble -= 5;
  101.          }
  102.          flying = false;
  103.          if(gravity < 0)
  104.          {
  105.             gravity *= bubble / 100;
  106.          }
  107.          else
  108.          {
  109.             gravity = baseGrav;
  110.          }
  111.       }
  112.       bubble_mc._xscale = bubble_mc._yscale = bubble;
  113.       if(KDN(kU))
  114.       {
  115.          if(onGround)
  116.          {
  117.             if(!home.respawn)
  118.             {
  119.                if(!flying)
  120.                {
  121.                   jump_snd = new Sound();
  122.                   jump_snd.atcPlay("jump");
  123.                }
  124.                jt = getTimer();
  125.                yspeed = - jumpspeed;
  126.                charArt.gotoAndStop("jump");
  127.             }
  128.          }
  129.       }
  130.       if(KDN(kL) && !gummed && !home.respawn)
  131.       {
  132.          if(!gummed)
  133.          {
  134.             if(!home.respawn)
  135.             {
  136.                xspeed = - speed + traction;
  137.                dirX = -1;
  138.                hitbox._yscale = 100;
  139.                if(!onGround)
  140.                {
  141.                   if(flying)
  142.                   {
  143.                      charArt.gotoAndStop("flyLeft");
  144.                   }
  145.                   else
  146.                   {
  147.                      charArt.gotoAndStop("airLeft");
  148.                   }
  149.                   anim = "airLeft";
  150.                   bubble_mc._x = -10;
  151.                }
  152.                else
  153.                {
  154.                   home.landing = false;
  155.                   charArt.gotoAndStop("left");
  156.                   anim = "left";
  157.                }
  158.             }
  159.          }
  160.       }
  161.       else if(KDN(kR))
  162.       {
  163.          if(!gummed)
  164.          {
  165.             if(!home.respawn)
  166.             {
  167.                xspeed = speed + traction;
  168.                dirX = 1;
  169.                hitbox._yscale = 100;
  170.                if(!onGround)
  171.                {
  172.                   if(flying)
  173.                   {
  174.                      charArt.gotoAndStop("flyRight");
  175.                   }
  176.                   else
  177.                   {
  178.                      charArt.gotoAndStop("airRight");
  179.                   }
  180.                   anim = "airRight";
  181.                   bubble_mc._x = 10;
  182.                }
  183.                else
  184.                {
  185.                   home.landing = false;
  186.                   charArt.gotoAndStop("right");
  187.                   anim = "right";
  188.                }
  189.             }
  190.          }
  191.       }
  192.       else if(KDN(kD))
  193.       {
  194.          if(!gummed)
  195.          {
  196.             if(!home.respawn)
  197.             {
  198.                if(onGround)
  199.                {
  200.                   hitbox._yscale = 50;
  201.                   charArt.gotoAndStop("duck");
  202.                   anim = "duck";
  203.                }
  204.                else
  205.                {
  206.                   charArt.gotoAndStop("fall");
  207.                   anim = "fall";
  208.                }
  209.             }
  210.          }
  211.       }
  212.       else
  213.       {
  214.          dirX = 0;
  215.          hitbox._yscale = 100;
  216.          bubble_mc._x = 0;
  217.          if(onGround)
  218.          {
  219.             if(home.respawn)
  220.             {
  221.                charArt.gotoAndStop("respawn");
  222.                anim = "respawn";
  223.             }
  224.             else if(!home.landing)
  225.             {
  226.                if(!home.respawn)
  227.                {
  228.                   charArt.gotoAndStop("idle");
  229.                   anim = "idle";
  230.                }
  231.             }
  232.          }
  233.          else if(flying)
  234.          {
  235.             charArt.gotoAndStop("fly");
  236.             anim = "fly";
  237.          }
  238.          else if(!home.respawn)
  239.          {
  240.             charArt.gotoAndStop("fall");
  241.             anim = "fall";
  242.          }
  243.       }
  244.       if(!onGround)
  245.       {
  246.          yspeed += gravity;
  247.          yspeed *= airFriction;
  248.          traction = 0;
  249.       }
  250.       if(onGround)
  251.       {
  252.          xspeed *= groundFriction;
  253.       }
  254.       if(cMap[downY + 1][centerX] == 9)
  255.       {
  256.          home.nextMap(xpos,ypos,gummed,bubble);
  257.          trace("CHANGE MAP");
  258.       }
  259.       if(cMap[upY - 1][centerX] == 8)
  260.       {
  261.          home.prevMap(xpos,ypos,gummed,bubble);
  262.          trace("CHANGE MAP");
  263.       }
  264.       if(cMap[DownY][centerX] == 7)
  265.       {
  266.          if(home.exit)
  267.          {
  268.             home.endLevel();
  269.             trace("NEXT LEVEL!");
  270.          }
  271.       }
  272.       if(cMap[DownY][centerX] == 10)
  273.       {
  274.          home.display["spring_mc_" + DownY + "_" + centerX].gotoAndPlay(2);
  275.          yspeed = - jPad;
  276.          if(gummed)
  277.          {
  278.             gummed = false;
  279.             charArt.splat_mc._visible = false;
  280.          }
  281.       }
  282.       if(cMap[upY][centerX] == 4)
  283.       {
  284.          if(flying)
  285.          {
  286.             trace("Setting Gummed to TRUE");
  287.             charArt.splat_mc._visible = true;
  288.             gummed = true;
  289.             bubble = 0;
  290.             bubble_pop.gotoAndPlay(2);
  291.             trace("SPIKES!");
  292.             flying = false;
  293.          }
  294.       }
  295.       ypos += yspeed;
  296.       xpos += xspeed + traction * 3;
  297.       updateEdges();
  298.       if(!home.invul)
  299.       {
  300.          var _loc3_ = 0;
  301.          while(_loc3_ < home.totalEnemy)
  302.          {
  303.             if(_loc2_.hitBox.hitTest(home.display["enemy" + _loc3_].hitbox))
  304.             {
  305.                home.alrtsAdd("chomped");
  306.                xspeed = 0;
  307.                hit = new Sound();
  308.                hit.atcPlay("hit1");
  309.                if(flying)
  310.                {
  311.                   flying = false;
  312.                   trace("Setting Gummed to TRUE");
  313.                   charArt.splat_mc._visible = true;
  314.                   gummed = true;
  315.                   bubble = 0;
  316.                   bubble_pop.gotoAndPlay(2);
  317.                }
  318.                else
  319.                {
  320.                   yspeed = -2;
  321.                }
  322.                if(home.display["enemy" + _loc3_]._x > xpos)
  323.                {
  324.                   trace("enemy right");
  325.                }
  326.                else
  327.                {
  328.                   trace("enemy left");
  329.                }
  330.                ypos += yspeed;
  331.                xpos += xspeed;
  332.                _loc2_.render();
  333.                home.hud_BKG.health_mc["mark" + (home.charHits + 1)].gotoAndStop(2);
  334.                trace("collision");
  335.                home.charHits = home.charHits + 1;
  336.                if(home.charHits >= home.charHealth)
  337.                {
  338.                   trace("You Are Now Dead");
  339.                   home.charAlive = false;
  340.                   home.endGame(1);
  341.                   break;
  342.                }
  343.                home.enCol[home.display["enemy" + _loc3_].id] = true;
  344.                home.invul = true;
  345.                home.invul_interval = setInterval(home.checkInvul,home.invulLoopTime);
  346.                home.display.char.rotateTo(720,0.5,"easeOutQuad");
  347.             }
  348.             else
  349.             {
  350.                home.enCol[home.display["enemy" + _loc3_].id] = false;
  351.             }
  352.             _loc3_ = _loc3_ + 1;
  353.          }
  354.       }
  355.       _loc3_ = 0;
  356.       while(_loc3_ < home["pu_" + home.currentMap].length)
  357.       {
  358.          var _loc1_ = "pickup" + _loc3_;
  359.          if(_loc2_.hitBox.hitTest(home.display[_loc1_]))
  360.          {
  361.             pu_snd = new Sound();
  362.             pu_snd.atcPlay("eat");
  363.             home.CumulativePoints.collected = home.CumulativePoints.collected + 1;
  364.             home.hud_BKG.points += home.puValue;
  365.             trace("\n =========");
  366.             trace("you just picked up pickup #" + home.display[_loc1_].id);
  367.             trace("you just picked up pickup #" + home["pu_" + home.currentMap][home.display[_loc1_].id]);
  368.             home.display[_loc1_].removeMovieClip();
  369.             home.itemsGrabbed = home.itemsGrabbed + 1;
  370.             trace(home.itemsGrabbed + " / " + home.totalPickups);
  371.             if(home.itemsGrabbed >= home.totalPickups)
  372.             {
  373.                home.alrtsAdd("portalOpen");
  374.                trace("Level Complete!");
  375.                home.display.exit_mc.gotoAndStop(2);
  376.                home.exit = true;
  377.             }
  378.             trace("\n");
  379.             trace("BEFORE: " + home["pu_" + home.currentMap]);
  380.             delete home["pu_" + home.currentMap][_loc3_];
  381.             trace(" AFTER: " + home["pu_" + home.currentMap]);
  382.             trace("\n");
  383.          }
  384.          _loc3_ = _loc3_ + 1;
  385.       }
  386.       if(!home.invul)
  387.       {
  388.          for(_loc3_ in home.enCol)
  389.          {
  390.             if(home.enCol[_loc3_])
  391.             {
  392.                _loc2_._alpha = 25;
  393.                break;
  394.             }
  395.             _loc2_._alpha = 100;
  396.          }
  397.       }
  398.       if(!onSlope)
  399.       {
  400.          if(cMap[downY2][leftX] == 1 || cMap[upY2][leftX] == 1 || cMap[centerY][leftX] == 1)
  401.          {
  402.             xpos -= xspeed;
  403.             xspeed = 0;
  404.             updateEdges();
  405.          }
  406.          if(cMap[downY2][rightX] == 1 || cMap[upY2][rightX] == 1 || cMap[centerY][rightX] == 1)
  407.          {
  408.             xpos -= xspeed;
  409.             xspeed = 0;
  410.             updateEdges();
  411.          }
  412.       }
  413.       if(!onGround)
  414.       {
  415.          if(cMap[upY][leftX] == 1 || cMap[upY][rightX] == 1 || (cMap[upY][leftX] == 5 || cMap[upY][rightX] == 5) || (cMap[upY][leftX] == 6 || cMap[upY][rightX] == 6))
  416.          {
  417.             var roof = upY * TILE_H + TILE_H * 2;
  418.             if(!onSlope)
  419.             {
  420.                ypos = roof - mAbs(gravity);
  421.                yspeed = 0;
  422.             }
  423.             xspeed *= groundFriction;
  424.             updateEdges();
  425.          }
  426.       }
  427.       updateEdges();
  428.       if(!flying)
  429.       {
  430.          if(cMap[downY][centerX] == 2)
  431.          {
  432.             if(!onGround)
  433.             {
  434.                if(!home.respawn)
  435.                {
  436.                   home.landing = true;
  437.                   charArt.gotoAndStop("land");
  438.                }
  439.             }
  440.             onGround = true;
  441.             onSlope = true;
  442.             var ground = downY * TILE_H - TILE_H;
  443.             var xp = centerX * TILE_W - _loc2_._x;
  444.             if(ypos > ground + TILE_H + xp)
  445.             {
  446.                ypos = ground + TILE_H + xp;
  447.             }
  448.          }
  449.          else if(cMap[downY][centerX] == 3)
  450.          {
  451.             if(!onGround)
  452.             {
  453.                if(!home.respawn)
  454.                {
  455.                   home.landing = true;
  456.                   charArt.gotoAndStop("land");
  457.                }
  458.             }
  459.             onGround = true;
  460.             onSlope = true;
  461.             var ground = downY * TILE_H;
  462.             var xp = _loc2_._x - centerX * TILE_W;
  463.             if(ypos > ground + xp - TILE_W)
  464.             {
  465.                ypos = ground + xp - TILE_W;
  466.             }
  467.          }
  468.          else
  469.          {
  470.             onSlope = false;
  471.          }
  472.       }
  473.       else
  474.       {
  475.          onSlope = false;
  476.       }
  477.       if(cMap[downY3][leftX] == 1 || cMap[downY3][rightX] == 1)
  478.       {
  479.          if(!onGround)
  480.          {
  481.             home.landing = true;
  482.             if(!home.respawn)
  483.             {
  484.                charArt.gotoAndStop("land");
  485.             }
  486.             jlt = getTimer();
  487.          }
  488.          if(!onSlope)
  489.          {
  490.             traction = 0;
  491.             setY(traction);
  492.          }
  493.       }
  494.       else if(cMap[downY3][leftX] == 5 || cMap[downY3][rightX] == 5)
  495.       {
  496.          if(!flying)
  497.          {
  498.             if(!onGround)
  499.             {
  500.                home.landing = true;
  501.                charArt.gotoAndStop("land");
  502.                jlt = getTimer();
  503.             }
  504.             traction = -1;
  505.             setY(traction);
  506.          }
  507.       }
  508.       else if(cMap[downY3][leftX] == 6 || cMap[downY3][rightX] == 6)
  509.       {
  510.          if(!flying)
  511.          {
  512.             if(!onGround)
  513.             {
  514.                home.landing = true;
  515.                charArt.gotoAndStop("land");
  516.                jlt = getTimer();
  517.             }
  518.             traction = 1;
  519.             setY(traction);
  520.          }
  521.       }
  522.       else if(!onSlope)
  523.       {
  524.          jt = getTimer();
  525.          onGround = false;
  526.       }
  527.       _loc2_.render();
  528.       _parent._parent.ticks = _parent._parent.ticks + 1;
  529.    }
  530. };
  531.